Programming in Lygon: A Brief Overview

نویسندگان

  • James Harland
  • David J. Pym
  • Michael Winikoff
چکیده

Recently, there has been much interest in the application of linear logic, a logic of resourceconsumption, to computer science. In particular, the present authors (and others) have considered how logic programming languages can be derived by purely proof-theoretic analyses of linear logic. Such languages provide a notion of resource-oriented programming, often leading to programs that are more elegant and concise than their equivalents in languages, such as Prolog, based on classical logics. We give a brief overview of the linear logic programming language Lygon. In common with other linear logic programming languages, Lygon allows clauses to be used exactly once in a computation, thereby avoiding the need for the explicit resourcecounting often necessary in Prolog-like languages. However, just as linear logic is a strict extension of classical logic, Lygon is a strict extension of (pure) Prolog: all (pure) Prolog programs can be executed by the Lygon system. Hence all the features of classical pure logic programs are available in Lygon, together with new ones based on linear logic. These include global variables, a theoretically transparent notion of state, mutual exclusion operators and various constructs for manipulating clauses. All of these follow from the basis of Lygon in linear logic and do not require extra-logical features for their definition. One example of an elegant use of Lygon is in the problem of finding paths in cyclic graphs. The well-known transitive closure program, a simple and elegant Prolog program, will find an infinite number of paths. However, by treating the specification of each edge as a linear predicate, a transliteration of this program into Lygon can be used. By stipulating that each edge can be used (at most) once, just a finite number of paths will be found between any two points in the graph. Moreover, experience with this and other examples suggests that many of the programming constructs, such as the multiplicative (or parallel) disjunction O of goals, arising from the basis of Lygon in linear logic facilitate a programming style that is elegant and natural for a variety of applications. The most important characteristic of the implementation of Lygon is the lazy splitting of multiplicative branches of potential proofs. This proof-search strategy is supported by a deterministic resource-management technique which can be exploited in many well-known state-and-action problems, such as the Yale shooting problem, the blocks world, counting programs and bin-packing problems. The implementation of Lygon that is currently available (Version 0.4) is an interpreter written in BinProlog.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Programming in Lygon: An Overview

For many given systems of logic, it is possible to identify, via systematic proof-theoretic analyses, a fragment which can be used as a basis for a logic programming language. Such analyses have been applied to linear logic, a logic of resource-consumption, leading to the de nition of the linear logic programming language Lygon. It appears that (the basis of) Lygon can be considered to be the l...

متن کامل

Agent-Oriented Programming in Linear Logic

This thesis investigates how a linear logic programming language, such as Lygon, can be used in the implementation of agent-oriented programs. Agent-oriented programming is a recent computational framework of interest to both academic and industrial researchers. Agent methodology is being successfully utilised in designing complex (distributed) applications that require concurrency, reasoning, ...

متن کامل

Implementing the Linear Logic Programming Language Lygon

There has been considerable work aimed at enhancing the expressiveness of logic programming languages. To this end logics other than classical rst order logic have been considered, including intuitionistic, relevant, temporal, modal and linear logic. Girard's linear logic has formed the basis of a number of logic programming languages. These languages are successful in enhancing the expressiven...

متن کامل

A Note on the Implementation and Applications ofLinear Logic Programming

Traditional logic programming languages, such as Prolog, have their origins in classical logic. Recently it has been shown how logic programming languages can be based on linear logic, a logic designed with bounded resources in mind. In this paper we discuss the implementation issues for the linear logic programming language Lygon, and describe some of the novel features of the language. These ...

متن کامل

A Compiler System of a Linear Logic Programming Language

Linear logic developed by J.-Y. Girard can be described as a logic of resources. There have been several proposals for logic programming language based on linear logic: LO, LinLog, ACL, Lolli, Lygon, and Forum. Lolli and Lygon are implemented as interpreter systems (on SML and λProlog for Lolli, on Prolog for Lygon). But, none of them have been implemented as a compiler system. This paper descr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995